import {Document, Schema, Model, model} from "mongoose";

interface UsersDocument extends Document, Users {
}

const UsersSchema: Schema = new Schema({
    openid: { // 唯一标识，并且去重
        type: String,
        required: true,
        unique: true
    },
    unionid: {
        type: String,
        required: true,
    },
    session_key: String,
    anonymous_openid: String,
    appid: {
        type: String,
        required: true
    },
    ips: {
        type: Array,
        default: []
    }
})

export const UsersModel: Model<UsersDocument> = model<UsersDocument>('Users', UsersSchema)

export interface Users {
    openid: string;             // 用户在当前小游戏的 ID，如果请求时有 code 参数才会返回
    unionid: string;            // 用户在小游戏平台的唯一标识符
    session_key?: string;       // 会话密钥，如果请求时有 code 参数才会返回
    anonymous_openid?: string;  // 匿名用户在当前小游戏的 ID，如果请求时有 anonymous_code 参数才会返回
    appid: string;              // 小游戏 ID
}
